asterisk-15.x: add menuselect mechanism 215/head
authorSebastian Kemper <[email protected]>
Tue, 28 Nov 2017 21:25:03 +0000 (22:25 +0100)
committerSebastian Kemper <[email protected]>
Tue, 28 Nov 2017 21:25:11 +0000 (22:25 +0100)
This adds a mechanism that disables all modules by default and then
enables only the modules needed for the packages selected, resulting in
less build time.

Signed-off-by: Sebastian Kemper <[email protected]>
net/asterisk-15.x/Makefile

index a368a758439e9b9a7a663c42d6269ca11d0ea3d4..b466ee125a719bf4d8c18c525dc8106626b1d813 100644 (file)
@@ -22,6 +22,23 @@ PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING LICENSE
 PKG_MAINTAINER:=Jiri Slachta <[email protected]>
 
+MENUSELECT_CATEGORIES:= \
+       MENUSELECT_ADDONS \
+       MENUSELECT_APPS \
+       MENUSELECT_BRIDGES \
+       MENUSELECT_CDR \
+       MENUSELECT_CEL \
+       MENUSELECT_CHANNELS \
+       MENUSELECT_CODECS \
+       MENUSELECT_FORMATS \
+       MENUSELECT_FUNCS \
+       MENUSELECT_PBX \
+       MENUSELECT_RES \
+       MENUSELECT_UTILS \
+       MENUSELECT_AGIS
+
+AST_ENABLE:=
+
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
 
@@ -59,6 +76,9 @@ define BuildAsterisk15Module
   $$(call Package/asterisk15/Default)
     TITLE:=$(2) support
     DEPENDS:= asterisk15 $(patsubst +%,+PACKAGE_asterisk15-$(1):%,$(4))
+    ifneq ($$(CONFIG_PACKAGE_asterisk15-$(1)),)
+    AST_ENABLE+=$(6)
+    endif
   endef
 
   define Package/asterisk15-$(1)/conffiles
@@ -305,6 +325,18 @@ define Build/Compile
        LDFLAGS="$(HOST_LDFLAGS) -Wl,-rpath,$(STAGING_DIR_HOSTPKG)/lib" \
        $(MAKE) -C "$(PKG_BUILD_DIR)/menuselect"
        $(MAKE) -C "$(PKG_BUILD_DIR)" menuselect-tree
+       for cat in $(MENUSELECT_CATEGORIES); do \
+               cd "$(PKG_BUILD_DIR)" && \
+               ./menuselect/menuselect \
+               --disable-category $$$$cat \
+               menuselect.makeopts; \
+       done
+       for item in $(AST_EMB_MODULES) $$(AST_ENABLE); do \
+               cd "$(PKG_BUILD_DIR)" && \
+               ./menuselect/menuselect \
+               --enable $$$$item \
+               menuselect.makeopts; \
+       done
        cd "$(PKG_BUILD_DIR)" && \
                ./menuselect/menuselect \
                        --disable BUILD_NATIVE \